const express = require('express');
const router = express.Router();
const expressJoi = require('@escook/express-joi');
const userinfoHandler = require("../router_handle/userinfo");

const {
    forgetPassword_limit,
    password_limit,
    name_limit,
    email_limit
} = require('../limit/user.js')

// 上传头像
router.post('/uploadAvatar', userinfoHandler.uploadAvatar)

// 绑定账号
router.post('/bindAccount', userinfoHandler.bindAccount)

// 修改密码
router.post('/changePassword', expressJoi(password_limit), userinfoHandler.changePassword)

// 获取用户信息
router.post('/getUserInfo', userinfoHandler.getUserInfo)

// 修改姓名
router.post('/changeName', expressJoi(name_limit), userinfoHandler.changeName)

// 修改性别
router.post('/changeSex', userinfoHandler.changeSex)

// 修改邮箱
router.post('/changeEmail', expressJoi(email_limit), userinfoHandler.changeEmail)

// 验证账号与邮箱 verifyAccountAndEmail
router.post('/verifyAccountAndEmail', userinfoHandler.verifyAccountAndEmail)

// 登陆页面修改密码 changePasswordInLogin
router.post('/changePasswordInLogin', expressJoi(forgetPassword_limit), userinfoHandler.changePasswordInLogin)

// -------------------------------------用户管理-------------------------------------

// 添加管理员
router.post('/createAdmin', userinfoHandler.createAdmin)

//  获取管理员列表
router.post('/getAdminList', userinfoHandler.getAdminList)

//  修改管理员信息
router.post('/editAdmin', userinfoHandler.editAdmin)

// 对管理员取消复权
router.post('/changeIdentityToUser', userinfoHandler.changeIdentityToUser)

// 对用户赋权
router.post('/changeIdentityAdmin', userinfoHandler.changeIdentityAdmin)

// 通过账号对用户搜索
router.post('/searchUser', userinfoHandler.searchUser)

// 通过部门对用户搜索  department
router.post('/searchUserByDepartment', userinfoHandler.searchUserByDepartment)

// 冻结用户
router.post('/banUser', userinfoHandler.banUser)

// 解冻用户
router.post('/hotUser', userinfoHandler.hotUser)

// 获取冻结用户列表
router.post('/getBanList', userinfoHandler.getBanList)

// 删除用户
router.post('/deleteUser', userinfoHandler.deleteUser)

// 获取对应身份的总人数 identity
router.post('/getAdminListLength', userinfoHandler.getAdminListLength)

// 监听换页并返回数据 页码pager identity
router.post('/returnListData', userinfoHandler.returnListData)

module.exports = router